home *** CD-ROM | disk | FTP | other *** search
/ Transactor / Transactor_02_1984_Transactor_Publishing.d64 / quadra 64.src (.txt) < prev    next >
Commodore BASIC  |  2023-02-26  |  5KB  |  246 lines

  1. 0 rem the transactor volume 5 issue 03 page 33
  2. 80 sys 700
  3. 90 .opt oo
  4. 100 ;
  5. 110 ;********************************
  6. 120 ;* quadra 64                    *
  7. 130 ;* may 14, 1984                 *
  8. 140 ;* by   daniel bingamon         *
  9. 150 ;* for the transactor           *
  10. 160 ;********************************
  11. 170 ;
  12. 180 ;      label definitions
  13. 190 ;
  14. 200 *=$c000
  15. 210 chrget =   $73
  16. 220 chr(NULL)t =   $79
  17. 230 ptr    =   $7a
  18. 240 intger =   $14
  19. 250 temp   =   $fb
  20. 260 eval   =   $ad9e
  21. 270 convrt =   $b7f7
  22. 280 print  =   $ab1e
  23. 290 dispch =   $0308
  24. 300 intrpt =   $0314
  25. 310 basic  =   $002b
  26. 320 memsiz =   basic+10
  27. 330 tmpadd =   $14
  28. 340 fst    =   $0800
  29. 350 snd    =   $2800
  30. 360 trd    =   $4800
  31. 370 fth    =   $6800
  32. 380 lmt    =   $a000
  33. 390 ;
  34. 400 ; initialization
  35. 410 ;
  36. 420 init   lda #>wedge   ;init wedge
  37. 430 ldy #<wedge
  38. 440 sta dispch+1
  39. 450 sty dispch
  40. 460 lda #>intprg  ;enable interupt
  41. 470 ldy #<intprg
  42. 480 sei
  43. 490 sta intrpt+1
  44. 500 sty intrpt
  45. 510 cli
  46. 520 ldy #00       ;zero first byte
  47. 530 sty fst       ;of partitions.
  48. 540 sty snd
  49. 550 sty trd
  50. 560 sty fth
  51. 570 lda #00
  52. 580 sta memsiz
  53. 590 lda #28
  54. 600 sta memsiz+1
  55. 610 lda #0        ;startup in
  56. 620 sta partit    ;partition 0.
  57. 630 lda #<msg     ;print title.
  58. 640 ldy #>msg
  59. 650 jsr print
  60. 660 lda #00
  61. 670 sta onetim
  62. 680 jsr pr1
  63. 690 nop
  64. 700 nop
  65. 710 rts
  66. 720 msg .byte $93: .asc "quadra 64": .byte $0d
  67. 730 .byte $0d: .asc "by: daniel bingamon"
  68. 740 .byte $0d: .asc "for the transactor"
  69. 750 .byte $0d,$00,$00,$00
  70. 760 wedge  jsr chrget
  71. 770 cmp #"\"    ;if pound sign
  72. 780 beq parse   ;process wedge.
  73. 790 cmp #":"
  74. 800 beq wedge
  75. 810 exit1a jmp $a7e7
  76. 820 exit   jmp $a474
  77. 830 tapspc .byte $00,$00,$00,$00,$00,$00
  78. 840 ;
  79. 850 ; process wedge command
  80. 860 ;
  81. 870 parse  pha
  82. 880 jsr savmem  ;store old part. data
  83. 890 pla
  84. 900 jsr chrget
  85. 910 cmp #00
  86. 920 bne contin
  87. 930 irqint jmp intchk
  88. 940 partit *=*+1
  89. 950 .byte $00,$00,$00
  90. 960 erroc  jmp errchk
  91. 970 contin cmp #"4"
  92. 980 bcs irqint
  93. 990 pha
  94. 1000 and #$cf
  95. 1010 sta partit
  96. 1020 pla         ;jump to individual
  97. 1030 cmp #"0"    ;partition routines
  98. 1040 beq one
  99. 1050 cmp #"1"
  100. 1060 beq two
  101. 1070 cmp #"2"
  102. 1080 beq three
  103. 1090 cmp #"3"
  104. 1100 beq four
  105. 1110 bne irqint
  106. 1120 one    jmp pr1
  107. 1130 two    jmp pr2
  108. 1140 three  jmp pr3
  109. 1150 four   jmp pr4
  110. 1160 ;
  111. 1170 ;      partition select table
  112. 1180 ;
  113. 1190 bnk1   .word $0801,$0801,$0801,$2800
  114. 1195 .word $2800,$2800,$2800,$2800,$0000
  115. 1200 bnk2   .word $2801,$2801,$2801,$4800
  116. 1205 .word $4800,$4800,$4800,$4800,$0000
  117. 1210 bnk3   .word $4801,$4801,$4801,$6800
  118. 1215 .word $6800,$6800,$6800,$6800,$0000
  119. 1220 bnk4   .word $6801,$6801,$6801,$a000
  120. 1225 .word $a000,$a000,$a000,$a000,$0000
  121. 1230 errchk cmp #"k"
  122. 1240 bne error
  123. 1250 lda #$a7
  124. 1260 sta dispch+1
  125. 1270 lda #$e4
  126. 1280 sta dispch
  127. 1290 lda #$01
  128. 1300 sta basic
  129. 1310 lda #$08
  130. 1320 sta basic+1
  131. 1330 lda #$00
  132. 1340 sta memsiz
  133. 1350 lda #$a0
  134. 1360 sta memsiz+1
  135. 1370 jmp exit
  136. 1380 error  jmp $af08 ;syntax error
  137. 1390 intchk lda #>intprg
  138. 1400 ldy #<intprg
  139. 1410 sei
  140. 1420 sta intrpt+1
  141. 1430 sty intrpt
  142. 1440 cli
  143. 1450 ldx partit   ;print part. no.
  144. 1460 lda #00
  145. 1470 jsr $bdcd ;print integer routine
  146. 1480 jmp exit
  147. 1490 intprg lda $c5
  148. 1500 cmp #63
  149. 1510 bne skp    ;escape quote mode
  150. 1520 lda #0     ;when stop key
  151. 1530 sta $d4    ;depressed.
  152. 1540 skp    lda $028d  ;enable freezing
  153. 1550 cmp #06    ;with ctrl & comm.
  154. 1560 bne skp2   ;keys.
  155. 1570 cloop  jsr $ff9f  ;ctrl & shift to
  156. 1580 lda $028d  ;resume operation.
  157. 1590 cmp #05
  158. 1600 bne cloop
  159. 1610 skp2   jmp $ea31
  160. 1620 ;
  161. 1630 pr1    ldx #00    ;partition 1.
  162. 1640 lp1    lda bnk1,x
  163. 1650 sta basic,x
  164. 1660 inx
  165. 1670 cpx #$0f
  166. 1680 bne lp1
  167. 1690 lda basic+1
  168. 1700 sta $fc
  169. 1710 lda #00
  170. 1720 sta $fb
  171. 1730 tay
  172. 1740 sta (temp),y
  173. 1750 lda onetim
  174. 1760 cmp #00
  175. 1770 bne no
  176. 1780 lda #01
  177. 1790 sta onetim
  178. 1800 rts
  179. 1810 no     jmp exit
  180. 1820 pr2    ldx #00    ;partition 2.
  181. 1830 lp2    lda bnk2,x
  182. 1840 sta basic,x
  183. 1850 inx
  184. 1860 cpx #$0f
  185. 1870 bne lp2
  186. 1880 lda basic+1
  187. 1890 sta $fc
  188. 1900 lda #00
  189. 1910 sta $fb
  190. 1920 tay
  191. 1930 sta (temp),y
  192. 1940 jmp exit
  193. 1950 pr3    ldx #00    ;partition 3.
  194. 1960 lp3    lda bnk3,x
  195. 1970 sta basic,x
  196. 1980 inx
  197. 1990 cpx #$0f
  198. 2000 bne lp3
  199. 2010 lda basic+1
  200. 2020 sta $fc
  201. 2030 lda #00
  202. 2040 sta $fb
  203. 2050 tay
  204. 2060 sta (temp),y
  205. 2070 jmp exit
  206. 2080 pr4    ldx #00    ;partition 4.
  207. 2090 lp4    lda bnk4,x
  208. 2100 sta basic,x
  209. 2110 inx
  210. 2120 cpx #$0f
  211. 2130 bne lp4
  212. 2140 lda basic+1
  213. 2150 sta $fc
  214. 2160 lda #00
  215. 2170 sta $fb
  216. 2180 tay
  217. 2190 sta (temp),y
  218. 2200 jmp exit
  219. 2210 savmem ldx #00    ;save old pointers
  220. 2220 savlp2 lda partit
  221. 2230 cmp #00
  222. 2240 beq sm1
  223. 2250 cmp #01
  224. 2260 beq sm2
  225. 2270 cmp #02
  226. 2280 beq sm3
  227. 2290 bne sm4
  228. 2300 savlp1 inx
  229. 2310 cpx #$0f
  230. 2320 bne savlp2
  231. 2330 rts
  232. 2340 sm1    lda basic,x  ;load pointer from
  233. 2350 sta bnk1,x   ;each partition.
  234. 2360 jmp savlp1
  235. 2370 sm2    lda basic,x
  236. 2380 sta bnk2,x
  237. 2390 jmp savlp1
  238. 2400 sm3    lda basic,x
  239. 2410 sta bnk3,x
  240. 2420 jmp savlp1
  241. 2430 sm4    lda basic,x
  242. 2440 sta bnk4,x
  243. 2450 jmp savlp1
  244. 2460 onetim .byte $00    ;first time indicator.
  245. 2470 .end
  246.